﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for AvaliacaoArtigo
/// </summary>
public partial class AvaliacaoArtigo
{
    public static bool createAvaliacaoArtigo(AvaliacaoArtigo avaliacaoArtigo)
    {
        try
        {
            DataClassesDataContext dc = new DataClassesDataContext();
            dc.AvaliacaoArtigos.InsertOnSubmit(avaliacaoArtigo);
            dc.SubmitChanges();
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
    public static bool changeNotaComentario(Guid idAvaliacaoArtigo, String nota, String comentario)
    {
        try
        {
            DataClassesDataContext dc = new DataClassesDataContext();
            AvaliacaoArtigo aa = dc.AvaliacaoArtigos.Single(p => p.id.Equals(idAvaliacaoArtigo));
            aa.notaGeral = Convert.ToDouble(nota);
            aa.comentarioGeral = comentario;
            dc.SubmitChanges();
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
    public static bool existByAvaliadorArtigo(Guid idAvaliador, Guid idArtigo)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.AvaliacaoArtigos.Any(p => p.idArtigo.Equals(idArtigo) && p.idAvaliador.Equals(idAvaliador));
    }
    public static AvaliacaoArtigo findAvaliacaoArtigobuIdArtigoIdAvaliador(Guid idAvaliador, Guid idArtigo)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.AvaliacaoArtigos.Single(p => p.idArtigo.Equals(idArtigo) && p.idAvaliador.Equals(idAvaliador));
    }
    public static AvaliacaoArtigo findAvaliacaoArtigoById(Guid idAvaliacaoArtigo)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.AvaliacaoArtigos.Single(p => p.id.Equals(idAvaliacaoArtigo));
    }
    public static Guid getIdAvaliacaoArtigoByIdAvaliadorIdArtigo(Guid idAvaliador, Guid idArtigo)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.AvaliacaoArtigos.Single(p => p.idAvaliador.Equals(idAvaliador) && p.idArtigo.Equals(idArtigo)).id;
    }
    public static bool Avaliado(Guid idAvaliacaoArtigo)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        AvaliacaoArtigo aa = dc.AvaliacaoArtigos.Single(p => p.id.Equals(idAvaliacaoArtigo));
        return aa.avaliado;
    }
    public static List<AvaliacaoArtigo> findAvaliados()
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        return dc.AvaliacaoArtigos.Where(p => p.avaliado.Equals(true)).ToList();
    }
    public static AvaliacaoArtigo changeAvaliadorVinculado(AvaliacaoArtigo avaliacaoArtigo)
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        AvaliacaoArtigo quesitoAntigo = dc.AvaliacaoArtigos.Single(p => p.id.Equals(avaliacaoArtigo.id));
        if (quesitoAntigo.avaliadorVinculado == true)
            quesitoAntigo.avaliadorVinculado = false;
        else
            quesitoAntigo.avaliadorVinculado = true;
        dc.SubmitChanges();
        try
        {
            return quesitoAntigo;
        }
        catch (Exception ex)
        {
            return new AvaliacaoArtigo();
        }
    }
    public static bool changeAvaliado(Guid idAvaliacaoArtigo)
    {
        try
        {
            DataClassesDataContext dc = new DataClassesDataContext();
            AvaliacaoArtigo aa = dc.AvaliacaoArtigos.Single(p => p.id.Equals(idAvaliacaoArtigo));
            aa.avaliado = true;
            dc.SubmitChanges();
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }
}